package com.imc.platform.base.notice.dao;

import com.imc.platform.base.category.pojo.Category;
import com.imc.platform.base.notice.pojo.Notice;
import com.imc.platform.base.notice.pojo.NoticeAttach;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.bouncycastle.crypto.tls.MACAlgorithm;

import java.util.List;
import java.util.Map;

/**
 * 方法描述:
 * SJC 2018-8-15 19:35:45
 *
*/
@Mapper
public interface INoticeMapper {


    Notice queryTopNotice();

    /**
     * 方法描述: 公告查询
     * SJC 2018-8-17 16:31:37
     *
    */
    List<Notice> queryNotice();

    /**
     * 方法描述:新增公告标题，获取公告id
     * SJC 2018-8-21 16:50:09
     *
    */
    int addNoticeTitle(Notice nt);

    /**
     * 方法描述：新增公告附件
     * SJC 2018-8-26 17:04:26
     *
    */
    int addNoticeAttach(NoticeAttach na);

    /**
     * 方法描述:填充公告内容
     * SJC 2018-9-11 20:23:49
     *
    */
    int updateNoticeContent(@Param("ntId") String ntId, @Param("contentDetail") String contentDetail,@Param("acceptObj") String acceptObj);

    /**
     * 方法描述：修改
     * SJC 2018-8-26 17:04:26
     *
     */
    int updateNotice(Notice nt);




    List<NoticeAttach> queryAttachByNtId(@Param("noticeId") String noticeId);

    /**
     * 方法描述:根据id获取公告
     * SJC 2018-9-4 10:39:58
     *
     */
    Notice queryNoticeById(String ntId);


    /**
     * 方法描述:删除附件
     * SJC 2018-9-4 17:21:36
     *
     */
    int delNoticeAttach(@Param("noticeId") String noticeId, @Param("imgName") String imgName);



    /**
     * 方法描述:删除公告
     * SJC 2018-9-4 21:53:49
     *
     */
    int delNotice(String ntId);


    int delNoticeAttachs(String ntId);



    /**
     * 方法描述:根据类型查询公告列表信息
     * SJC 2018-9-11 16:25:24
     *
     */
    List<Map<String,Object>> queryNoticeList(@Param("noticeType") String noticeType);

    /**
     * 方法描述:查询所有类别
     * SJC 2018-9-13 16:34:30
     *
    */
    List<Category> queryCategory();

    /**
     * 方法描述:新增公告发送人员
     * SJC 2018-9-13 20:12:17
     *
    */
    int insertNoticeSendMember(Map<String,Object> parms);

    List<String> querySendMember(@Param("noticeId") String noticeId, @Param("senderId") String senderId);


    /**
     * 方法描述:根据公告id获取所有已经发送的用户
     * SJC 2018-9-14 17:31:58
     *
     */
    List<Map<String,Object>> queryReceivers(@Param("noticeId") String noticeId);

    int delNoticeByNotIdSendId(@Param("noticeId") String noticeId,@Param("sendId")String sendId);

    List<Notice>queryNewsByHome();

    List<Notice>queryNoticeByHomeByTitle(String title);

    Notice queryNoticeDetByTypeAndId(@Param("parms") Map<String,Object>parms);

    List<Notice>queryNoticeListByTypeAndId(@Param("parms") Map<String,Object>parms);

    void updaeChilckNum(String id);

    Notice queryOrderAndLeave(@Param("parms") Map<String,Object>parms);

    List<Map<String,Object>>queryNoticeDetById(@Param("map")Map<String,Object>map);

    Notice queryNoticeDet(@Param("map")Map<String,Object>map);
}
